The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to embodiments of the claimed subject matter.
Real Time Instruction Tracing (RTIT) is a debug feature that logs what instructions are being executed by a processor. RTIT logs when starting or stopping tracing due to the processor entering or leaving a traced region or mode. Logging the starting and stopping of tracing provides a variety of benefits including, for example, properly counting the number of cycles expended in the traced region or mode, which in turn enables the Instructions Per Cycle (IPC) to be calculated. Probe mode is a debug feature that involves executing extra instructions that are not part of the normal software. When an RTIT trace is being created, the debugger may enter probe mode in order to assist in the debugging by providing additional logging information or by modifying behavior of the processor or a system configured with such a processor. In some circumstances, it may be beneficial to have the RTIT log indicate where and/or when probe mode was entered and exited. This can provide extra information to the log; allowing the impact of the debug mode on the RTIT trace to be seen. In other circumstances, it may be beneficial to have the RTIT log ignore not only all instructions executed in probe mode, but to also ignore that probe mode was entered at all. By allowing the RTIT log to be unperturbed by entering probe mode, it is possible to use probe mode to debug a system without interfering with the RTIT trace. An example of when this is useful is when a hardware debugger is trying to debug the RTIT tracing mechanism itself. Conventional RTIT mechanisms provide no means by which debug techniques that cause extra instructions to be executed can still provide transparent debugging of the RTIT mechanism itself.
The present state of the art may therefore benefit from systems and methods for implementing optional logging of debug activities in a Real Time Instruction Tracing (RTIT) log as described herein.